#!/bin/bash

# --- Gemini CLI 最终版自动化编译脚本 (稳定版) ---
# 功能：
# 1. 使用稳定、兼容性好的 OpenCL 后端编译 llama.cpp。
# 2. 适用于本项目锁定的 b2945 稳定版源码。

# 如果任何命令执行失败，则立即退出脚本
set -e

# --- 步骤 1: 检查 llama.cpp 子模块是否存在 ---
if [ ! -d "llama.cpp" ] || [ ! -f "llama.cpp/CMakeLists.txt" ]; then
    echo "❌ 错误: 未找到 llama.cpp 子模块目录，或目录为空。"
    echo "请确认您已正确克隆仓库（使用 --recurse-submodules 参数）。"
    echo "如果已克隆，请尝试运行: git submodule update --init --recursive"
    exit 1
fi

echo "✅ 已找到 llama.cpp 子模块。"

# --- 步骤 2: 清理旧的编译目录 (可选，但推荐) ---
echo "🧹 正在清理旧的编译目录..."
rm -rf llama.cpp/build

# --- 步骤 3: 使用 CMake 配置并构建项目 ---
echo "⚙️  正在使用 CMake 配置项目并启用 OpenCL 支持..."
cd llama.cpp
mkdir build
cd build
cmake .. -DLLAMA_CLBLAST=ON -DLLAMA_CURL=OFF

echo "🚀 开始编译... 这可能会持续几分钟（-j 参数会使用所有CPU核心）。"
cmake --build . --config Release -j

# --- 步骤 4: 成功! ---
echo "
✅ 编译成功!"
# 在这个旧版源码中，可执行文件名为 'main'
echo "✨ 新的可执行文件位于: ./bin/main"
echo "➡️ 您现在可以手动将其复制到 gemma_cli/ 目录并重命名:"
echo "cp ./bin/main ../../gemma_cli/llama-cli"